package main

import (
	"fmt"
	"time"
)

func main() {
	/*
		8年前的今天上午9点30分
		要求：
		1. 毫秒时间戳是多少？
		2. 格式化输出时间为 2005/09/10 21:35:40 +0800的形式
		3. 请问那天是周几？到那天，本年已经过了多少周？
		 4. 距离今天已经过了多少天了？
	*/
	// 获取当前时间
	now := time.Now()

	// 计算 8 年前的今天 9:30 AM
	// 当前时间是 2025年9月18日，8年前是 2017年9月18日 上午9:30
	date8YearsAgo := time.Date(now.Year()-8, now.Month(), now.Day(), 9, 30, 0, 0, time.Local)

	// 1. 计算毫秒级时间戳
	millis := date8YearsAgo.UnixNano() / int64(time.Millisecond)
	fmt.Println("8年前今天上午9:30分的毫秒时间戳是：", millis)

	// 2. 格式化输出时间为 2005/09/10 21:35:40 +0800 的形式
	formattedTime := date8YearsAgo.Format("2006/01/02 15:04:05 -0700")
	fmt.Println("8年前今天上午9:30分的格式化时间：", formattedTime)

	// 3. 计算该天是周几，并且计算已过的周数
	weekday := date8YearsAgo.Weekday()
	weekOfYear := int(date8YearsAgo.YearDay()/7) + 1
	fmt.Printf("8年前今天是：%s，本年已过的周数为：%d\n", weekday, weekOfYear)

	// 4. 计算从8年前到今天已经过了多少天
	daysPassed := int(now.Sub(date8YearsAgo).Hours() / 24)
	fmt.Printf("距离今天，8年前已经过去了：%d天\n", daysPassed)
}
